<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 使用变量--访问变量
        // 访问规则 ：优先 会在自身作用域中找（就近原则）
        //  优先 会在自身作用域中找，如果找不到就去 上一级作用域中，如果找到就用；还是找不到去上上一级，一次类推
        // 直到全局作用域为止， 全局都找不到就报错

        // 赋值规则：
        // 找到谁就给谁赋值
        // 优先 会在自身作用域中找，如果找不到就去 上一级作用域中，如果找到就用；还是找不到去上上一级，一次类推
        // 直到全局作用域为止， 会给定义全局变量（后期 会报错）
        var a = 1;
        console.log(a);//1

        function box() {
            var a = 2;
            var b = 100;
            console.log(a);//


            function fn() {
                var num = 1000
                console.log(a);//2
                console.log(b);
                console.log(num);
                // console.log(c);// c is not defined

                num = 100000;//改变fn里面的num
                a = 200;//修改的是box里面的a
                b = 200;//修改的是box里面的b
                window.a = 10000;//修改全局的a

                p = 1000;//成了全局变量

            }
            fn()

        }
        box()


        console.log(p);
    </script>

</body>

</html>